package com.tudouji.project.produce.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.flow.service.pojo.BasePojo;
import com.tudouji.framework.aspectj.lang.annotation.Excel;
import com.tudouji.framework.web.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 生产计划对象 produceplan
 *
 * @author tudouji
 * @date 2022-06-01
 */
@Data
public class Produceplan extends BasePojo {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    private String guid;

    /**
     * 编号
     */
    @Excel(name = "编号")
    private String code;

    /**
     * 工厂ID(组织id)
     */
    @Excel(name = "工厂ID(组织id)")
    private String orgid;

    /**
     * 库房id
     */
    @Excel(name = "库房id")
    private String strmid;

    /**
     * 负责人id
     */
    @Excel(name = "负责人id")
    private String principalid;

    /**
     * 负责人姓名
     */
    @Excel(name = "负责人姓名")
    private String principal;

    /**
     * 总重量
     */
    @Excel(name = "总重量")
    private BigDecimal weight;

    /**
     * 计划生产时长(天)
     */
    @Excel(name = "计划生产时长(天)")
    private Integer planlongtime;

    /**
     * 计划开始日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划开始日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date planstart;

    /**
     * 计划结束日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划结束日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date planend;

    /**
     * 实际开始日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实际开始日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date realstart;

    /**
     * 实际结束日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实际结束日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date realend;

    /**
     * 状态
     */
    @Excel(name = "状态")
    private Integer status;

    /**
     * 备注
     */
    @Excel(name = "备注")
    private String remarks;

    /**
     * 创建人
     */
    @Excel(name = "创建人")
    private String operatorid;

    /**
     * 最后修改时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后修改时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastupdate;

    /**
     * 生产计划名称
     */
    @Excel(name = "生产计划名称")
    private String name;

    /**
     * 生产计划增加标识项；包工计价方式：1-按原材料 2 – 按产成品
     */
    @Excel(name = "生产计划增加标识项；包工计价方式：1-按原材料 2 – 按产成品")
    private Integer pricemode;

    /**
     * 计划类型
     */
    @Excel(name = "计划类型")
    private Integer type;

    private Integer[] stats;

    private String pricemodeName;

    private String statusName;

    private String typeName;

    private String createName;

    private String strname;

    private List<Produceplanitem> items;

    private String[] roomids;

    private String search;
    @JsonFormat(
            pattern = "yyyy-MM-dd HH:mm:ss"
    )
    private Date createtime;

    private Integer pickinglistCount;

}
